#!/usr/bin/python
# -*- coding: UTF-8 -*-
# @Time    : 2023/11/19 16:27
# @Author  : 飞飞
from django import template
from commodity.models import Menu

register = template.Library()


@register.filter
def get_item(dictionary, key):
    return dictionary.get(key)


@register.filter
def get_sub_menu(menu):
    sub_menus = Menu.objects.filter(superior=menu.id)
    return sub_menus


@register.filter
def get_option_commodity(option_name, d):
    return d[option_name]


@register.filter
def color(status):
    status_list = ['等待支付', '交易成功', '支付失败']
    status_color = ['#01AAED', '#5FB878', '#FF5722']
    return status_color[status]

@register.filter
def status(status):
    status_list = ['等待支付', '交易成功', '支付失败']
    status_color = ['#01AAED', '#5FB878', '#FF5722']
    return status_list[status]

@register.inclusion_tag('include/_pagination.html', takes_context=True)
def pagination_html(context):
    # < !--num = 3  # 总共显示多少个页码-->
    # < !--page_num = context['page']  # 显示第几页的数据-->
    # < !--per_page = context['per_page']  # 每页显示学生数量-->
    # < !--total_num = context['total_num']  # 总学生数-->
    # < !--total_page = math.ceil(total_num / per_page)  # 总页面数,向上取整-->

    total_page = context['total_page']
    page = int(context['page'])  # 显示第几页的数据
    # page_list = context['p'].page_range

    '''
    # 分析，可能的page_list

    假设现在total_page = 6
    num=1    # 当前页左右各显示几页

    上一页 1   2  3 下一页
    上一页 4   5  6 下一页
    上一页     1  2 下一页
    上一页 5   6    下一页

    num=2
    上一页        1  2  3 下一页
    上一页     1  2  3  4 下一页
    上一页 1   2  3  4  5 下一页
    上一页 2   3  4  5  6 下一页
    上一页 3   4  5  6    下一页
    上一页 4   5  6       下一页
       page-num  page  page+num
    '''

    num = 1  # 当前页左右各显示几页
    page_list = []

    # 当前页+左边显示页码列表
    if page - num <= 0:  # 当前页左边不够显示时，我的页码范围就是1-当前页
        for i in range(1, page + 1):
            page_list.append(i)
    else:  # 当前页左边够显示时，我的页码范围就是page - num-当前页
        for i in range(page - num, page + 1):
            page_list.append(i)

    # 右边显示页码列表
    if page + num >= total_page:
        for i in range(page + 1, total_page + 1):
            page_list.append(i)
    else:
        for i in range(page + 1, page + num + 1):
            page_list.append(i)

    return {'page': page,
            'total_page': total_page,
            'page_list': page_list,
            'context': context,
            'per_page': context['per_page'],
            }
